簡體   English   中英

如何在打字稿中輸入文字?

[英]How to import type in typescript?

我有以下出口:

import * as jwt from 'jsonwebtoken';
  ...
export type JsonWebToken = typeof jwt;

然后,我嘗試像這樣使用它:

export class AuthService {
  constructor(
    @Inject(constants.JWT) private readonly jsonWebToken: JsonWebToken,
    //                                         error here ^  

  ){}

我收到此錯誤,指向JsonWebToken

ReferenceError: jwt_provider_1 is not defined
    at Object.<anonymous> (D:\Learning\nest\project\server\modules\Auth\auth.service.ts:9:59)
    at Module._compile (module.js:573:30)
    at Module.m._compile (D:\Learning\nest\project\node_modules\ts-node\src\index.ts:392:23)
    at Module._extensions..js (module.js:584:10)
    at Object.require.extensions.(anonymous function) [as .ts] (D:\Learning\nest\project\node_modules\ts-node\src\index.ts:395:12)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Module.require (module.js:517:17)
    at require (internal/module.js:11:18)

Nest的依賴項注入不適用於非DI類型(例如JWT庫)。 我的建議是根據ITS文檔使用jwt庫制作包裝器組件,然后將包裝器正常注入控制器。

@Component()
export class JWTComponent {
    signJwt(data) {
        jwt.sign() // etc.
    }

    verifyJwt() {
        jwt.verify() // etc.
    }
}

經過一番挖掘之后,我得到了下一個解決方案:

import * as types from '...';
// then you can use it like so:
jsonWebToken: types.JsonWebToken,

但是這種解決方法是愚蠢的,讓我感到難過。 這是打字稿錯誤還是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM