尝试使用ServiceStack将DTO导入打字稿时如何使用“ DefaultImports”?

时间:2019-02-08 16:47:32

标签: typescript servicestack

当尝试使用ServiceStack附带的cli工具进行TypeScript时,我一直遇到DefaultImports功能无法正常工作或以任何特殊有用的方式工作。使用此功能的正确方法是什么?

例如:

/* Options:
Date: 2019-02-08...

...
//ExcludeTypes: 
DefaultImports: Example
*/

将输出

import Example;

这是无效的,我期望的格式为import Example from ExampleModule。我是否完全缺少某些东西,或者我的理解是错误的?

DefaultImports: Example from ExampleModule导致import ExamplefromExampleModule;出现乱码。用引号将它们也无济于事。

1 个答案:

答案 0 :(得分:0)

野兔是一些不同的DefaultTypes进口商品的热门示例:

我还刚刚添加了对流行的Symbol:module导入的简短支持,该导入将在其中发出:

import { Symbol } from "module";

此更改可从v5.4.1(现在为available on MyGet)中获得。

我无法使用最新版本重现您的确切问题,因此建议您首先升级用于获取dto的工具。

npm工具

如果使用@servicestack/cli npm工具,则可以通过卸载并重新安装来升级:

$ npm uninstall @servicestack/cli
$ npm i -g @servicestack/cli

然后通过检查版本来检查您是否至少使用了 v1.0.7

$ typescript-ref -v

Version: 1.0.7

然后,您可以通过运行不带参数的工具来更新目录中的任何*dtos.ts,例如:

$ typescript-ref

使用两种新的Symbol:Module语法,尝试使用https://techstacks.io DTO(运行最新的ServiceStack v5.4.1 on MyGet)来达到预期效果:

/* Options:
...
DefaultImports: Zip:./ZipCodeValidator
*/

生成预期的导入:

import { Zip } from "./ZipCodeValidator";

您尝试的导入也可以:

/* Options:
...
DefaultImports: * as Zip from './ZipCodeValidator'
*/

哪个生成了预期的结果:

import * as Zip from './ZipCodeValidator';

如果仍然无法使用,则需要升级要从中生成DTO的API的ServiceStack版本。

您可以通过使用最新版本的ServiceStack从https://techstacks.io生成DTO来检查该工具本身是否起作用:

$ typescript-ref https://techstacks.io

dotnet工具

除了使用@servicestack/cli npm工具之外,您还可以使用web or app tool并安装:

$ dotnet tool install -g web

并使用以下命令进行更新:

$ dotnet tool update -g web

使用以下命令检查您运行的是最新的0.0.16版本:

$ web -v

Version: 0.0.16

然后,您可以使用web ts代替typescript-ref(或ts-ref)的npm工具,例如通过以下方式安装DTO:

$ web ts https://techstacks.io

使用以下方法更新DTO:

$ web ts