我发现这段代码并不完全明白。确切地说,我正在谈论那些函数参数:
function defaultPort({ port=123, user='test' }: Object = {}) {
}
我认为这是一种不同的解构,但显然不是。另外,我无法在Node中运行此代码,所以我猜它需要某种模块才能正确使用它。
有没有人见过这个?
答案 0 :(得分:1)
如TJ所述,php7 A -- B -- M <-- retain this parent's version of history
/
master .. C
部分为TypeScript或Flow。
确切地说,我正在谈论那些函数参数:
我相信你在谈论default parameters。它们允许您为函数的参数指定默认值。
基本用法:
: Object
在对对象进行解构时,也可以使用默认参数。
示例:
function sayHi (name = 'John') {
console.log('Hi ' + name)
}
sayHi('James') // Hi James
sayHi() // Hi John
答案 1 :(得分:0)
它的打字稿很好,但它不是有效的打字稿,因为它在编译时会产生错误,确实是deconstructing,或者更具体地object destructuring使用default values。
它不编译的原因是参数的类型是Object
,它不允许任何未编入索引的内容,例如:
let o: Object = { a: 5 };
console.log(o.a); // Error: Property 'a' does not exist on type 'Object'
console.log(o["a"]); // this is fine
将其更改为any
,它会正常工作:
function defaultPort({ port=123, user='test' }: any = {}) { // no error
}
虽然最好只声明类型:
type Param = {
port?: number;
user?: string;
}
function defaultPort({ port=123, user='test' }: Param = {}) {
}