请参阅链接示例https://www.typescriptlang.org/play?#code/MYGwhgzhAEAyD2BzRBTATtA3gKG9aaKYAJvAHYgCe0ALmIhAFzQQ1oCWZiA2gLq75g5VmgCuwGvDQAKPPmgA6JXQbMRnHv3wBKLHPw0AFuwgKVMALy16EOQF8B0EEmhWhZCPBAoFzxAoAjTmJpd09vABpoAAMAEkwjEzMbO2YAUgho3WwHIA
我想在类的构造函数中有一个rest参数,但我发现我做不到。
class Logger {
constructor(
// A parameter property cannot be declared using a rest parameter.(1317)
readonly ...tags: string[]
) {
}
}
字符串
所以我使用下面的命令,但是我得到了另一个错误消息
class Logger {
readonly tags: string[]
constructor(
...tags: string[]
) {
this.tags = tags
}
// Property 'tags' is used before its initialization.(2729)
log = console.log.bind(console, `${this.tags}: %s`)
}
型
我看看它是如何编译的,我发现this.log = console.log.bind(console,
${this.tags}:%s );
被移到构造函数中,在赋值this.tags = tags
之前,这就是为什么它显示错误。
"use strict";
class Logger {
constructor(...tags) {
this.log = console.log.bind(console, `${this.tags}: %s`);
this.tags = tags;
}
}
型
我觉得应该像这样的JavaScript代码
class Logger {
constructor(...tags) {
this.tags = tags;
}
log = console.log.bind(console, `${this.tags}: %s`);
}
型
我怎样才能在构造函数中有一个rest参数,就像上面的JavaScript没有错误?
1条答案
按热度按时间laik7k3q1#
我有点不清楚你的意图,但一个变通方案看起来像这样:
字符串