#typescript
Вопрос:
Учитывая следующий код:
class Entity {
public id: string;
}
declare function select<T>(fun: (arg: T) => any, arg: T): any;
declare function selector(arg: (keyof Entity)[]): any;
Я бы ожидал , что следующий код завершится ошибкой с какой-либо ошибкой, например Type '"name"' is not assignable to type 'keyof Entity'
, однако он не может быть правильно скомпилирован.
select(selector, ['name']);
Любая помощь будет очень признательна!
Комментарии:
1. воспроизведение с помощью машинописного текста 4.3.2 выдает ошибку:
Type '"name"' is not assignable to type '"id"'.ts(2322)
2. Это приводит к ошибке в типоскрипте v4.3.4: Ссылка на игровую площадку
3.
@Heretic Monkey
как вы думаете, это связано с моей конфигурацией машинописного текста?4. @RafiHenig Обратите внимание, что я не был проинформирован о вашем ответе, потому что вы отформатировали символ @ и мое имя пользователя в качестве кода. Просто введите @ и первые три буквы или около того имени пользователя, затем вкладку. Он автоматически заполнит все остальное за вас. Что касается вашего вопроса, да, вы, скорее всего, используете более старую версию TypeScript.
5. @HereticMonkey Благодарю вас за объяснение правильного ответа, в настоящее время я использую TypeScript 4.3, я подозреваю, что это не имеет никакого отношения к версии TypeScript, так как я пытался переключиться на более старые версии (3 и 2), используя игровую площадку в опубликованном, и все же появились сообщения об ошибке.