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
Variables Typescript声明变量类型重复_Variables_Typescript_Types_Declaration_Typescript2.0 - Fatal编程技术网

Variables Typescript声明变量类型重复

Variables Typescript声明变量类型重复,variables,typescript,types,declaration,typescript2.0,Variables,Typescript,Types,Declaration,Typescript2.0,我声明了一个typescript变量,如下所示: let foo: any = this.someFunc(someArg); someFunc是一个返回类型与foo类型匹配的函数: public someFunc(arg: any): any { return {}; } 返回类型为“any”,但也可以是任何其他类型 考虑到可能在未指定类型的情况下表达了foo声明: let foo = this.someFunc(someArg); 第一个声明示例应该被认为是错误的还是错误的 我

我声明了一个typescript变量,如下所示:

let foo: any = this.someFunc(someArg);
someFunc是一个返回类型与foo类型匹配的函数:

public someFunc(arg: any): any {
    return {};
}
返回类型为“any”,但也可以是任何其他类型

考虑到可能在未指定类型的情况下表达了foo声明:

let foo = this.someFunc(someArg);
第一个声明示例应该被认为是错误的还是错误的

我目前在一个请求中被告知,这是错误的,因为它构成了重复

在我看来,这两种用法都很好,第一种更具可读性,并强制执行分配给声明变量的返回类型


在typescript代码示例中,我看到了这两种符号。

这是您的团队必须做出的风格选择

是的,它是重复的,因为编译器可以推断它;但是,编写它们会更容易,让开发人员知道,而不必单击许多函数(因为someFunc可以从其他函数推断其类型)

此外,如果您犯了错误,编译器会告诉您,因此重复类型信息不会像复制实际代码那样糟糕


FWIW,我的团队已经决定键入所有内容,这样我们就不必在何时键入内容时不断拨打电话。唯一的例外是使用
new
初始化字段/变量时,您不需要将类型设置为某个超类/接口。

编译器根据函数的返回类型推断
foo
的类型,这就是您不需要显式指定它的原因

指定它没有错,也不是错误,只是更详细。
有些人喜欢这种冗长的方式,因为它更具可读性,有些人认为它是多余的

你需要弄清楚你的团队中有哪些惯例,并以此为基础开展工作

但在某些情况下,使用它更有意义,例如:

interface A {
    x: number;
}

interface B extends A {
    y: number;
}

function fn(): B { return null }

let a: A = fn();

它不是必需的,因为您可以将
a
设置为
B
,并且它将是相同的
interface A {
    x: number;
}

interface B extends A {
    y: number;
}

function fn(): B { return null }

let a: A = fn();