В настоящее время я использую VisualStudioCode для написания приложения nodejs, и я использую комментарии к документам, чтобы связать параметры функций с классами, чтобы IntelliSense мог сработать, но я столкнулся с некоторыми проблемами, когда хочу использовать классы / типымодули.
Как я в настоящее время обращаюсь с вещами:
class Foo{
constructor(){
this.bar = "value"
}
}
/**
* @param {Foo} parameter
*/
function foobar(parameter){
parameter.bar.charAt(0); //parameter.bar now with IntelliSense
}
В foobar
Теперь я могу видеть все доступные атрибуты / функции, которые я могу вызвать bar
.
Теперь, если где-то в модуле узла есть файл TypeScript:
declare module 'coollib' {
namespace lib {
type CoolLibType = {
begin?: string | number | Date;
liveBuffer?: number;
requestOptions?: {};
highWaterMark?: number;
lang?: string;
}
}
export = lib;
}
Как я могу сослаться на это?Я хотел бы сделать что-то подобное в моем файле JavaScript:
const CoolLibType = require('coollib')
/**
* @param {CoolLibType} obj
*/
function foobar(obj){
obj.lang.charAt(0); //with cool IntelliSense
}
Но это, очевидно, не работает так.