描述
我编写了一个带有动态覆盖的简单类Symbol.toPrimitive
:
interface PrimitiveHintsMap {
"number": number;
"boolean": boolean;
"string": string;
}
class Timespan {
#duration = 0;
[Symbol.toPrimitive]<K extends keyof PrimitiveHintsMap>(hint: K): PrimitiveHintsMap[K] {
switch (hint) {
case `number`: return this.#duration;
case `boolean`: return Boolean(this.#duration);
case `string`: return this.toString();
default: throw new TypeError(`Invalid '${hint}' primitive hint`);
}
}
}
...就像对内置 DOM 侦听器所做的那样:
return
该函数每次都会抱怨
类型“number”不可分配给类型“PrimitiveHintsMap[K]”。
类型“number”不可分配给类型“never”。ts(2322)
问题
我哪里错了?
你从哪里找到它的never
?