Here - это документация о том, как проверить типы с использованием TypeScript (прокрутите вниз до раздела «Типы и типы дифференциации»), а также here - подробный ответ с помощью плункера, в котором показано, как использовать параметры проверки типа.
Я чувствую, что я нарушаю протокол, чтобы не отвечать на вопрос внутри, поэтому, чтобы быть кратким, вы, скорее всего, захотите воспользоваться преимуществами «Защищенных пользователем типов» и «Защитными элементами типа instanceof» ». Обратите внимание, что «защита типа instanceof» работает только в том случае, если у объекта Object есть конструктор. Вот ссылка на plunker из моего другого ответа. Раздел, выполняющий всю работу, находится на странице «app/child.component.ts».
ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {
console.log();
console.log("Custom function isSimpleChange:", this.isSimpleChange(changes));
console.log("Using instanceof SimpleChange:", (changes instanceof SimpleChange));
console.log("Using Object.prototype.toString.call():", Object.prototype.toString.call(changes));
console.log("Logging the object itself:",changes);
console.log("-----------------------------------------------------------------------------------------");
let testExample = new ExampleObject();
console.log("Custom function isExampleObject:", this.isExampleObject(testExample));
console.log("Using instanceof ExampleObject:", (testExample instanceof ExampleObject));
console.log("Using Object.prototype.toString.call():" + Object.prototype.toString.call(testExample));
console.log(testExample);
}
В настоящее время нет ни одного "p lugin ", который делает это (для этого вам понадобится машинопись). Angular2 приложил много усилий, чтобы сделать свой код и шаблоны доступными для IDE, но это будущее. – gilamran
@gilamran Как мне это сделать даже с использованием TypeScript? –
Подумав об этом немного, может быть, решение будет оберточной функцией? что-то вроде ' ", где ожидаемый тип должен соответствовать типу' [data] '. Разумеется, для части программистов потребуется немного больше усилий, но это единственный способ, о котором я мог думать сейчас. Я скоро собираюсь попробовать это, и если это сработает, я отправлю ответ. –
Scrambo