预期打字稿tsc会引发错误,但没有引发

史丹利

在用于编辑打字稿代码的IDE中,checkApp.ts中有一条警告指出:

Argument type { someWrongParams: any } is not assignable to parameter type AddAppToListParams.

但是,当我运行时tsc,不会抛出任何错误。运行时如何显示错误tsc

tsconfig.json

{
"compilerOptions": {
    "allowJs": true,
    "noEmit": true,
    "pretty": true,
    "strict": true,
    "strictFunctionTypes": true,
    "noImplicitReturns": true,
    "module": "ES6",
    "target": "ES6"
},
"exclude": [
    "node_modules",
    "dist"
],
"include": [
    "./src/**/*"
]}

代码checkApp.ts

interface CheckAppParams {
    appId: string;
}

export default (app: any) => async (requestParams: CheckAppParams): Promise<any> => {
    const { appId } = requestParams;
    await app.tasks.addAppToList({ someWrongParams: appId });
};

addAppToList.ts

interface AddAppToListParams {
    appId: string;
}

export default (app: any) => async (requestParams: AddAppToListParams): Promise<any> => {
    const { appId } = requestParams;
    app.list.push(appId);
};

任务

import checkApp from './checkApp';
import addAppToList from './addAppToList';

export default (app: any) => async (): Promise<any> => {
    app.tasks = {
        addAppToList: addAppToList(app),
        checkApp: checkApp(app),
    };
};
贤者

如果要tsc引发错误,则可以将appan定义为an interface,而不是引用它any,否则打字稿编译器将不知道它是什么。

将您的应用程序定义为接口将允许编译器识别该错误:

export interface App {
  tasks: {
    addAppToList: (requestParams: AddAppToListParams) => Promise<any>;
    checkApp: (requestParams: CheckAppParams) => Promise<any>;
  };
  list: any; // you can make it whatever it needs to be.
}

这样的可行性interface取决于您对的使用app上面的界面只是一个示例,可以是您需要的任何内容。

或者,您可以package.json在运行前添加一个预构建钩子以进行一次皮棉检查,tsc以检查IDE抛出的警告并阻止tsc运行。您必须使用与IDE使用的相同的linter规则,但它允许您向构建中添加比仅在您的定义的默认Typescript规则集中更严格的检查tsconfig.json

因此,不要在以前运行的地方tsc使用npm run buildtsc

package.json:

  "scripts": {
    "prebuild": "do your lint checks here with can throw errors if you want",
    "build": "tsc"
  },

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打字安装会引发错误

来自分类Dev

为什么打字稿会引发错误消息:类型上不存在属性?

来自分类Dev

预期的异常,但使用Rspec没有引发任何异常。变量为空时尝试引发错误

来自分类Dev

如果页面上没有元素,为什么JavaScript会引发错误?

来自分类Dev

pip安装会引发错误-没有setup.py

来自分类Dev

如果我没有在nil上执行代码,为什么Rails会引发错误

来自分类Dev

使用gzip恢复HDD图像会引发错误,设备上没有剩余空间

来自分类Dev

有时JavaScript代码块会引发错误

来自分类Dev

带有字典的Playsound设置会引发错误

来自分类Dev

具有Unicode字符的字典键会引发错误

来自分类Dev

滚动带有隐藏列的 RadDataGrid 会引发错误

来自分类Dev

如何检查空值内联并在打字稿中引发错误?

来自分类Dev

RSpec:引发错误的预期方法失败

来自分类Dev

AutoMapper未映射...没有引发错误

来自分类Dev

为什么流程不执行,没有引发错误?

来自分类Dev

AutoMapper未映射...没有引发错误

来自分类Dev

从文件还原表会引发错误

来自分类Dev

尝试重置导航会引发错误

来自分类Dev

禁用UIButton会引发错误

来自分类Dev

Angular 通用安装会引发错误

来自分类Dev

打字稿使用Angular 2组件引发了声明预期错误

来自分类Dev

为什么排他运算符没有包含范围运算符会引发错误?

来自分类Dev

Tablix中的SSRS隐藏表达式会引发错误,但Tablix没有配置隐藏表达式

来自分类Dev

简单代码会引发预期; 错误

来自分类Dev

systemctl引发错误

来自分类Dev

文件既没有创建也没有引发错误

来自分类Dev

lein别名与嵌套参数有关会引发错误

来自分类Dev

清除vb.net中的所有文本框会引发错误

来自分类Dev

带有角色分配的ARM模板的增量重新部署会引发错误

Related 相关文章

  1. 1

    打字安装会引发错误

  2. 2

    为什么打字稿会引发错误消息:类型上不存在属性?

  3. 3

    预期的异常,但使用Rspec没有引发任何异常。变量为空时尝试引发错误

  4. 4

    如果页面上没有元素,为什么JavaScript会引发错误?

  5. 5

    pip安装会引发错误-没有setup.py

  6. 6

    如果我没有在nil上执行代码,为什么Rails会引发错误

  7. 7

    使用gzip恢复HDD图像会引发错误,设备上没有剩余空间

  8. 8

    有时JavaScript代码块会引发错误

  9. 9

    带有字典的Playsound设置会引发错误

  10. 10

    具有Unicode字符的字典键会引发错误

  11. 11

    滚动带有隐藏列的 RadDataGrid 会引发错误

  12. 12

    如何检查空值内联并在打字稿中引发错误?

  13. 13

    RSpec:引发错误的预期方法失败

  14. 14

    AutoMapper未映射...没有引发错误

  15. 15

    为什么流程不执行,没有引发错误?

  16. 16

    AutoMapper未映射...没有引发错误

  17. 17

    从文件还原表会引发错误

  18. 18

    尝试重置导航会引发错误

  19. 19

    禁用UIButton会引发错误

  20. 20

    Angular 通用安装会引发错误

  21. 21

    打字稿使用Angular 2组件引发了声明预期错误

  22. 22

    为什么排他运算符没有包含范围运算符会引发错误?

  23. 23

    Tablix中的SSRS隐藏表达式会引发错误,但Tablix没有配置隐藏表达式

  24. 24

    简单代码会引发预期; 错误

  25. 25

    systemctl引发错误

  26. 26

    文件既没有创建也没有引发错误

  27. 27

    lein别名与嵌套参数有关会引发错误

  28. 28

    清除vb.net中的所有文本框会引发错误

  29. 29

    带有角色分配的ARM模板的增量重新部署会引发错误

热门标签

归档