在export和之间的Typescript有什么区别default export.在所有教程中,我看到人们在export他们的课程中,如果我default在导出之前没有添加关键字,我就无法编译我的代码.
另外,我在官方打字稿文档中找不到任何默认导出关键字的痕迹.
export class MyClass {
collection = [1,2,3];
}
Run Code Online (Sandbox Code Playgroud)
不编译.但:
export default class MyClass {
collection = [1,2,3];
}
Run Code Online (Sandbox Code Playgroud)
请问.
错误是: error TS1192: Module '"src/app/MyClass"' has no default export.
我有一个问题,Typescript编译器成功编译我的代码,但运行时给了我未定义的类型错误.
在我的应用中,我创建了一个types.ts文件,其中包含多个其他ts文件之间共享的内容 它包含一个字符串枚举,如:
enum MyEnum {
One = "one";
Two = "two";
}
Run Code Online (Sandbox Code Playgroud)
当我这样定义它.编译器让我在其他ts文件中使用它,看起来很开心.但是,在运行时我收到错误"MyEnum未定义".
我知道有两种方法可以解决这个问题:
我对Typescript很新,我觉得我可能误解了一些基本的东西.
首先,我不明白为什么如果会出现运行时错误,Typescript编译器会愉快地编译我的代码.我会理解它,如果我使用了declare关键字,告诉编译器在运行时应该有什么东西可用,但在这种情况下我不明白为什么它应该假设枚举来自除了types.ts文件以外的任何地方.
其次,我想在我的应用程序中全局定义类型,并让它们在任何地方都可用,而不必在每次使用它们时都导入它们.我该如何做到这一点?或者这可能被认为是不好的做法?
我使用的是Typescript 2.6,我的配置如下所示:
{
"compilerOptions": {
/* Basic Options */
"target": "es6",
"module": "commonjs",
"lib": ["es6", "es7", "esnext"],
"sourceMap": true /* Generates corresponding '.map' file. */,
"outDir": "build" /* Redirect output structure to the directory. */,
"removeComments": true /* Do not emit comments to output. */,
/* Strict Type-Checking Options */
"strict": true /* Enable …Run Code Online (Sandbox Code Playgroud)