为什么TypeScript没有为未定义的类型抛出编译错误

为什么TypeScript没有为未定义的类型抛出编译错误,typescript,react-native,Typescript,React Native,下面是一个简单的例子来描述这个问题: 我使用npx react native init MyApp--template react native template typescript创建了一个vanilla RN项目 在App.tsx中,我添加了let foo:It尽管EpointoFatypeSafeLanguage不允许HitLikeThis=“…说真的,wtf,为什么这个编译没有错误!?” 我使用iOS运行应用程序 应用程序运行正常,捆绑程序中没有错误 问题:如何使其抛出编译错误?您可以

下面是一个简单的例子来描述这个问题:

  • 我使用
    npx react native init MyApp--template react native template typescript创建了一个vanilla RN项目
  • App.tsx
    中,我添加了
    let foo:It尽管EpointoFatypeSafeLanguage不允许HitLikeThis=“…说真的,wtf,为什么这个编译没有错误!?”
  • 我使用iOS运行应用程序
  • 应用程序运行正常,捆绑程序中没有错误

    问题:如何使其抛出编译错误?

    您可以在编译器选项中使用
    --strict

    这将:

    启用所有严格类型检查选项。 启用--strict启用--noImplicitAny,-noImplicitThis,-alwaysStrict,--strictBindCallApply,--strictNullChecks,--strictFunctionTypes和--strictPropertyInitialization

    来源:

    找到了答案

    纱线tsc
    进行编译并生成类型错误(如果有)。如果在调用预期命令之前需要在类型错误上失败,则可以通过在现有命令前面加上
    thread tsc&&
    ,将其作为
    package.json
    文件中其他命令的一部分进行链接

    例如,我的
    package.json
    中的一个命令如下:
    “测试”:“纱线tsc和rm-f测试”\uuuu/***.js和jest-覆盖范围”

    rm
    位可能对您有所帮助,因为我注意到运行
    tsc
    会生成所有
    .ts
    文件的
    .js
    版本