В машинописи я понимаю how to specify the shape of an external library. Рассмотрим хотя бы случай, когда нужна только одна функция из библиотеки, или библиотека является единственной (возможно, перегруженной) функцией (например, this library for the function merge). Необходимость вызова функции с использованием именем модуля -dot- имени функции довольно многословно:Машинопись: Работа с другими библиотеками JavaScript с одной функцией
В файле merge.d.ts
:
declare module "merge" {
export function merge(o: Object, ...args: Object[]): Object;
export function merge(isDeep: boolean, o: Object, ...args: Object[]): Object
}
В некотором тестовом файле:
///<reference path="merge.d.ts"/>
import merge = require('merge');
merge.merge({x: 1}, {y: 2});
Есть другой способ чтобы это могло эффективно заменить merge.merge
только merge
на линии 3, все еще делая типы проверки?
На самом деле, этот код даже не работает. Несмотря на то, что он проверяет тип во время выполнения, во время выполнения функция 'merge.merge' не определена. Я думаю, проблема заключается в том, что «слияние» npm - это только функция, а не модуль. –