我是TypeScript的新手,正在尝试为包含JavaScript文件的文件夹创建Typescript定义index.d.ts
。
src
|--controllers
|-- index.d.ts
|-- Controller1.js (myMethod1)
|-- Controller2.js (myMethod2)
|--routes
|-- routes.js
Controller1
和Controller2
中的方法是动态生成的。我需要为控制器定义接口。即Controller1
仅应具有myMethod1
,而Controller2
应具有myMethod2
。
index.d.ts
import * as express from 'express'
interface CommonInterface {
get(req: express.Request, res: express.Response): void;
delete(req: express.Request, res: express.Response): void;
update(req: express.Request, res: express.Response): void;
}
declare namespace Controller1 {
function myMethod1(req: express.Request, res: express.Response): void;
}
declare namespace Controller2 {
function myMethod2(req: express.Request, res: express.Response): void;
}
编辑:我正在导入如下所示的控制器。但是代码完成显示接口名称而不是myMethod
函数。
routes.js
const Controller1 = require('../controllers/Controller1');
Controller1.myMethod1() // lint shows unknown method
const Controller1 = require('../controllers'); // index.js
Controller1.Controller1.myMethod1() // lint works correctly here
答案 0 :(得分:0)
JavaScript不支持类型定义。这是一个Typescript功能(或精确地说是project)。这意味着您无法使用$( function() {
$( "#slider-range" ).slider({
range: true,
min: 0,
max: 10000,
values: [ 2000, 5000 ],
slide: function( event, ui ) {
$( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
$("#select-min-price").val(ui.values[ 0 ]);
$("#select-max-price").val(ui.values[ 1 ]);
}
});
$( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) + " - $" + $( "#slider-range" ).slider( "values", 1 ) ); });
文件在js文件中看到智能感知。