【发布时间】:2019-06-12 08:26:28
【问题描述】:
我有一个示例打字稿对象
declare const S3 = "https://s3.amazonaws.com/xxx/icons";
declare const SVG = "svg-file-icons";
declare interface MyIcons {
"image/jpeg": string;
"image/jpg": string;
}
export const FILE_ICONS_SVG: MyIcons = {
"image/jpeg": `${S3}/${SVG}/jpg.svg`,
"image/jpg": `${S3}/${SVG}/jpg.svg`
};
我在一个共享 NPM 包中声明这个对象,以保持我所有项目的一致性。但是 TSC 编译给了我这样的东西。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FILE_ICONS_SVG = {
"image/jpeg": `${S3}/${SVG}/jpg.svg`,
"image/jpg": `${S3}/${SVG}/jpg.svg`
};
很明显 S3 和 SVG 没有在编译的 js 文件中定义,因此在使用时会出错。
如何解决?
【问题讨论】:
-
declare const是做什么的? -
const这样做,但declare关键字有什么作用? -
你去 - 显然,这就是
declare所做的。 -
不,不是——看看骗子。它有不同的语义。
标签: javascript typescript ecmascript-6