Я пытаюсь создать файл определения TypeScript для этой реализации String.format for JavaScript, но я боюсь.Как создать файл описания TypeScript для внешнего javascript, который добавляет методы в String
Я все еще новичок в TypeScript, и я прочитал много статей/фрагментов о том, как создавать определения. Один из лучших ресурсов, который я нашел, - это статья Стива Фентона в блоге Complex TypeScript Definitions Made Easy. Я следовал предложенным примерам, но до сих пор не увенчался успехом.
Проблема в том, что внешний Javascript добавляет метод к «String». Я пытался «объявить» класс String, следующим образом:
declare class String {
declare function format(str: string, obj0: any, obj1?: any, obj2?: any): string;
}
Это приводит к ошибке: Duplicate identifier 'String'
Я также попытался описать информацию типа с помощью интерфейса:
interface String {
format(str: string, obj0: any, obj1?: any, obj2?: any): string;
}
сам интерфейс кажется нормально, но если я пытаюсь позвонить:
String.format("The {0} brown {1}!", "quick", "fox")
Я получаю ошибку The property 'format' does not exist on value of type '{ prototype: String; fromCharCode(...codes: number[]): string; (value?: any): string; new(value?: any): String; }'
.
Я предполагаю, что это связано с тем, что format
- это статический метод (в терминах TypeScript в любом случае), но он определен как метод экземпляра на интерфейсе (поскольку интерфейсы не могут содержать определения статических методов).
Возможно, я вхожу в совершенно неправильное направление с этим или может иметь совершенно ошибочное понимание какого-либо элемента Javascript, TypeScript или обоих. Может ли кто-нибудь хотя бы подтолкнуть меня в правильном направлении, пожалуйста?
Я использую машинопись. См. Эту ссылку. Http: // StackOverflow.com/questions/20070158/string-format-not-work-in-typescrypt/35163695 # 35163695 – seven