Игровая площадка TypeScript не работает на Symbol.hasInstance
встроенном символе, но работает для других.
Пробовал другие методы символов Symbol.match
, Symbol.replace
работают отлично и Symbol.hasInstance
правильно идентифицируется, как показано в console.log
При тестировании на игровой площадке и MDN оба возвращают false с сгенерированным кодом.
Код машинного кода, как на детской площадке, можно вставить ниже в https://www.typescriptlang.org/play/index.html
class Array1 {
static [Symbol.hasInstance](instance) {
console.log(instance);
return Array.isArray(instance);
}
}
console.log(Symbol.hasInstance.toString());
let arr: string[] = ['a', 'b'];
console.log(arr instanceof Array1);
console.log([] instanceof Array1);
// expected output: true
// output is false
Сгенерированный код не может вернуть true в левой части, когда вы нажимаете run
var Array1 = /** @class */ (function () {
function Array1() {
}
Array1[Symbol.hasInstance] = function (instance) {
console.log(instance);
return Array.isArray(instance);
};
return Array1;
}());
console.log(Symbol.hasInstance.toString());
var arr = ['a', 'b'];
console.log(arr instanceof Array1);
console.log([] instanceof Array1);
Должен возвращать true вместо false