我使用tsc编译器中的--declaration参数从我的typescript项目创建了一个定义文件(d.ts).
但是,当我尝试与物业发布该数据包这个生成定义文件显然是不行的分型,在故宫的package.json.我创建了另一个项目来测试它.
它抱怨消息:" 导出的外部包文件打包文件'... d.ts'不是模块.请联系包作者以更新包定义 ".
这是我的源文件:
MyInterface.ts
export interface MyInterface
{
MyProperty: string;
}
Run Code Online (Sandbox Code Playgroud)
MyClass.ts
import {MyInterface} from './MyInterface';
export class MyClass implements MyInterface
{
get MyProperty(): string
{
return "MyString";
}
}
Run Code Online (Sandbox Code Playgroud)
MyInheritedClass.ts
import {MyClass} from './MyClass';
export class MyInheritedClass extends MyClass
{
public MyMethod(): number
{
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
tsc命令是这样的:
tsc MyClass.ts MyInterface.ts MyInheritedClass.ts --declaration -t es5 -outFile "mydefinition.js" --module "system"
Run Code Online (Sandbox Code Playgroud)
这是生成的定义:
mydefinition.d.ts
declare module "MyInterface" {
export interface MyInterface {
MyProperty: …Run Code Online (Sandbox Code Playgroud) 考虑以下用于hibernate 的JAVA 模型:
@Entity
@Table
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
@Column
public String firstName;
@Column
public String lastName;
@Column
public Boolean active;
}
Run Code Online (Sandbox Code Playgroud)
以及以下 API 序列化模型(使用spring boot rest 控制器):
public class PersonVO {
public Long id;
public String fullName;
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
在C# .NET 中,我可以像这样:
IQueryable<Person> personsQuery = entityFrameworkDbContext.Persons;
// FIRST POINT - Here i could make some predefined filtering like 'only active', …Run Code Online (Sandbox Code Playgroud)