【发布时间】:2017-11-11 22:13:47
【问题描述】:
我正在使用 Typescript 2.3.4、Node.JS 8.0.0 和 Feathers 框架(版本 2.1.1)。我正在制作使用服务的快速路由,当我在羽毛应用程序上抓取单例实例后尝试使用服务时,Typescript 抛出 error TS2532: Object is possible 'undefined' 错误,即使在显式类型保护之后。
routes.ts
import feathers = require('feathers');
export default function(this: feathers.Application) {
const app = this;
app.post(
'/donuts',
async (req, res) => {
const someService = app.service<any>('predefined-service');
if(typeof someService === "undefined" || !authService) {
res.redirect('/fail');
return;
}
try {
let data = someService.create({test: 'hello'});
console.log(data);
res.redirect('/success');
} catch(err) {
res.redirect('/fail');
}
}
}
我也试过写someService!.create...,但也没有用。
【问题讨论】:
-
someService 的类型是什么?错误发生在哪一行?
-
错误出现在
let data = someService.create({test: 'hello'});行,someService根据app.service<any>('predefined-service')调用定义为Service<any>类型(该类型来自羽毛)。羽毛服务工作by first registering them.
标签: javascript node.js typescript feathersjs