Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeScript类型化函数参数接受任何_Typescript - Fatal编程技术网

TypeScript类型化函数参数接受任何

TypeScript类型化函数参数接受任何,typescript,Typescript,下面是一个编译得很好的TypeScript片段(使用1.5.3) 使用any类型的参数调用请求特定类型参数的函数怎么可能?这是因为在使用any类型时,您选择不进行类型检查 [有时]我们希望退出类型检查,让值通过编译时检查。为此,我们用“任意”类型标记这些 要避免任何故障: 使用--noImplicitAny编译器选项(或在Visual Studio中关闭允许隐式任何类型) 除非必要,否则不要使用显式任何类型(例如var x:any) 即使我现在明白了这是怎么回事,我还是觉得很奇怪。即使没有--n

下面是一个编译得很好的TypeScript片段(使用1.5.3)


使用
any
类型的参数调用请求特定类型参数的函数怎么可能?

这是因为在使用
any
类型时,您选择不进行类型检查

[有时]我们希望退出类型检查,让值通过编译时检查。为此,我们用“任意”类型标记这些

要避免任何
故障

  • 使用
    --noImplicitAny
    编译器选项(或在Visual Studio中关闭
    允许隐式任何类型
  • 除非必要,否则不要使用显式
    任何
    类型(例如
    var x:any

  • 即使我现在明白了这是怎么回事,我还是觉得很奇怪。即使没有
    --noImplicitAny
    选项,我也会假定,当我向函数声明添加一个类型时,它将要求任何调用方传递该类型。
    any
    的含义仍然应该是“这可以是任何东西”,但你不应该只在需要特定类型的地方传递一个“anythis”变量。@LukasH我知道你是用c#编程的。当前,
    any
    类型的工作方式类似于c#中的动态变量(例如
    dynamic str=“asdf”;int num=str;
    可以)。就像你应该避免在c#中使用动态类型一样,我建议你避免在TypeScript中使用
    any
    类型。我理解你的观点,但当你将现有javascript项目转换为TypeScript时,很难避免
    any
    。对于这种工作流,启用
    --noImplicitAny
    不是一个选项,因为它需要重写整个代码库。我想要的
    any
    是一个可以有任何属性的对象,但是你不能将它传递到任何需要某种类型的地方。@LukasH我打开了。
    function alertNumber(a: number) {
        alert(a + 1);
    }
    var x:any = "string";
    alertNumber(x);