Repository navigation
TypeScript 类型系统 #31
Description
Activity
还没有,还是在typescript的模板里使用吧!感谢贡献。最好能使用ng-zorro+asp.net core的项目,就是官方的dotnet new angular模板
@ElderJames 不是写好Razor模板然后运行SmartCode就好了么,是不是我对问题的理解有问题?
- addedquestionFurther information is requestedFurther information is requested
on Jun 4, 2019 @ElderJames @Ahoo-Wang 这个贡献一个 pr 倒是不难, 问题是我已经 fork 一个 库 了,模板中引用了私有的类库, 不能提交 pr 。 貌似 github 只能 fork 一个库, 这个该怎么解决呢?
@Ahoo-Wang 我觉得用razor做模板还是不太好,能不能参考dotnet模板,模板项目自身可以运行,在配置文件里配置需要替换的符号。
官方搜集的模板
https://github.com/dotnet/templating/wiki/Available-templates-for-dotnet-new@ElderJames ok,我抽空看一下这种实现方式。对于 @beginor 的问题你有什么建议。
我本来计划想设计一个 SmartCode 模板市场类的东西,类似于 hub.docker.com ,大佬们 有什么建议。
比如 @beginor 提到的私有模板,如何提交,公共化的模板应该如何提交,以及官方模板提交的规范于标准 这些都需要讨论制定。@ElderJames 那个只是一个初始化项目的模板吧, 和 smartcode 要做的从数据库生成代码的模板区别比较大的。
@Ahoo-Wang @beginor 我觉得不能提交pr了,只能用链接来关联模板项目的地址
我本来计划想设计一个 SmartCode 模板市场类的东西,类似于 hub.docker.com ,大佬们 有什么建议。
用dotnet gobal tools下载模板,命令行生成吧?
创建模板项目:
smart new template -type dbfirst -name angular上传模板:
smart publish -key xxx安装:
smart new -i "Angular"生成:
smart new angular -db "server=localhost;database=MyDb;"@ElderJames 那个只是一个初始化项目的模板吧, 和 smartcode 要做的从数据库生成代码的模板区别比较大的。
@beginor 数据源的问题,dotnet new 的数据源在cli参数,我们做成从数据库获取数据源的就行
不错,这个想法好。希望早日实现 👍不过貌似已经偏离话题了。
模板库的问题, 用 git submodule 的方式是否可行呢?
fork的库改个名吧,一般fork的都是提pr用的。
模板库应该独立存在,不在项目中维护了~改名是不行的, 还是提示已经 fork 过了。
我找到的方法是从历史记录中新建一个分支, 然后再合并 smartcode 的更新进来, 这样就在我的库中得到一个只包含 smartcode 的分支, 不包括我的修改, 用这个分支来提交 pr 是可以的。 以后我再慢慢整理, 把我的模板库移动到一个独立的分支或者库。
@Ahoo-Wang 遇到了一点儿小问题, 请教一下。 我们的数据表名称遵循蛇形下划线规范, 比如
app_attachments,app_users。 对应生成的 TypeScript 接口类型如下:// Create By Beginor // Date 2019-06-05 06:51 // Code Generated By SmartCode // Code Generater Github : https://github.com/dotnetcore/SmartCode /** interface for 附件表 */ export interface AppAttachment { /** 附件ID */ id: number; /** 内容类型(HTTP Content Type) */ contentType: string; /** 附件内容 */ content: number[]; /** 创建时间 */ createdAt: string; /** 创建附件的用户ID */ creatorId: string; /** 文件名 */ fileName: string; /** 附件大小 */ length: number; /** 附件所属的业务ID,可以是任意表的ID,如果业务表有附件, 则需要根据业务表记录的ID,删除对应的附件。 */ businessId: number; }
根据前端 Angular 的命名规范, 应该保存为
app-attachment.ts。 这样表名称、接口(类)名与文件名各不相同, 这里和 C# 的规范不一致了, 因为 C# 的类名和文件名使用的相同的名称。请问这种情况该怎么配置呢? 能否为文件名再单独配置一个转换器或者转换函数呢?
Angular里不是
attachment.model.ts这样的文件命名吗?
组合词会用-连接,如home-header.model.ts。是的,我只是举例说明而已,请问有办法解决么? 建议参考下 angular 的 pipe 机制, 将转换器配置成管道,可以多个串联在一起
扩展
IWordsConverter接口应该可以满足你的需求@beginor 该问题下个小版本迭代开始支持,有什么好的建议也可以提交给我。下次有问题另外开个issue吧,这个issue已经偏离了主题好远了。😂
OK,我先写 converter 吧实现吧,也就是几行代码的事儿
请问现在 SmartCode 支持 TypeScript 的类型系统么? 打算 SmartCode 做一套基于 Angular 的增删查改的模板, 如果有的话就可以直接使用了。