首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用typescript编译器API以编程方式生成import语句

使用typescript编译器API以编程方式生成import语句
EN

Stack Overflow用户
提问于 2020-01-11 11:07:53
回答 1查看 403关注 0票数 2

我想生成以下import语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Something } from 'a-module';

为此,我使用typescript compiler API

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import * as ts from 'typescript';

const sourceFile = ts.createSourceFile(
    `source.ts`,
    ``,
    ts.ScriptTarget.Latest,
    false,
    ts.ScriptKind.TS
);

const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });

const importNode = ts.createImportDeclaration(
    /* decorators */ undefined,
    /* modifiers */ undefined,
    ts.createImportClause(
        ts.createIdentifier('Something'),
        /* namedBindings */ undefined
    ),
    ts.createLiteral('a-module')
);

const result = printer.printNode(ts.EmitHint.Unspecified, importNode, sourceFile);

console.log(result);
// prints --> import Something from "a-module";

如何将大括号语法添加到import语句中?可能与createImportClause中的namedBindings参数有关,但我不确定如何使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-11 11:44:36

Ok找到了(我猜一定是用了namedBindings):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// [...]

const importNode = ts.createImportDeclaration(
    /* decorators */ undefined,
    /* modifiers */ undefined,
    ts.createImportClause(
        undefined,
        ts.createNamedImports(
            [
                ts.createImportSpecifier(undefined, ts.createIdentifier('Something')),
            ]
        )
    ),
    ts.createLiteral('a-module')
);

// [...]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59693819

复制
相关文章
Kotlin 包和 import 语句使用
Kotlin 包和 package 语句 Kotlin 包与 Java 包的概念是一样的,都表示文件结构(语法上并不严格要求),可以起到区分同名源代码文件、组织项目结构的作用。 不过,由于允许包级函数和包级属性的存在,Kotlin 包的内容更加丰富,不像 Java 包只包含类和接口。 与 Java 源文件相同,Kotlin 源文件至多有一个 package 语句,必须放在第一行(除注解外),多个文件层次间使用点号分隔: package foo.bar 此外,Kotlin 的 package 语句前可以有注解
xiangzhihong
2018/02/06
1.8K0
Kotlin 包和 import 语句使用
Kotlin 包和 package 语句 Kotlin 包与 Java 包的概念是一样的,都表示文件结构(语法上并不严格要求),可以起到区分同名源代码文件、组织项目结构的作用。 不过,由于允许包级函数和包级属性的存在,Kotlin 包的内容更加丰富,不像 Java 包只包含类和接口。 与 Java 源文件相同,Kotlin 源文件至多有一个 package 语句,必须放在第一行(除注解外),多个文件层次间使用点号分隔: package foo.bar 此外,Kotlin 的 package 语句前可以有注解
xiangzhihong
2018/01/26
1.2K0
以API方式与ERP集成EDI
金蝶云是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。整个产品采用SOA架构,完全基于BOS平台组建而成,包含企业财务管理、供应链管理、生产管理、供应链协同管理、人力资源管理等核心应用。技术架构上该产品采用平台化构建,支持跨数据库应用,支持本地部署、私有云部署与公有云部署三种部署方式,同时还在公有云上开放中国第一款基于ERP的协同开发云平台。目前,越来越多的企业选用金蝶云作为ERP系统。
知行软件EDI
2021/02/22
1.7K0
以API方式与ERP集成EDI
以import from与export default方式同时导出多个变量
当我们需要以import from与export default结合方式, 同时导出多个变量时,函数不失为一种优雅简洁的方式~
zhaoolee
2019/07/19
4.9K0
【TypeScript】条件语句
TypeScript 条件语句是通过一条或多条语句的执行结果(True 或 False)来决定执行的代码块。
iOS Magician
2023/03/21
9060
TypeScript 中的 export 和 import
在 TypeScript 中, 经常要使用 export 和 import 两个关键字, 这两个关键字和 es6 中的语法是一致的, 因为 TypeScript = es6 + type !
beginor
2020/08/10
3.7K0
使用 TypeScript 探索面向对象编程
在软件开发领域,面向对象编程 (OOP) 已成为创建复杂且可扩展应用程序的基本范例。支持 OOP 概念的最流行的编程语言之一是 TypeScript。TypeScript 是 JavaScript 的超集,它增加了静态类型和其他功能以增强代码的可维护性和可读性。在这篇博客中,我们将探讨 TypeScript 中面向对象编程的强大功能,以及它如何帮助我们构建健壮且高效的应用程序。
IT千锋教育
2023/06/05
5900
使用 TypeScript 探索面向对象编程
自己动手写编译器:实现简单if语句的跳转代码生成
注意看L4, L5, L6三个地方的分支,中间代码有一个指令叫iffalse,后面跟着一个表达式,如果表达式结果能转换为false,那么goto语句就产生作用,跳转到它对应的语句,如果表达式结果为true,那么控制流直接跳转到L4下面的语句。
望月从良
2022/06/21
5610
使用Navicat工具生成sql语句
通过工具生成sql语句,可以有效解决类型强制转换问题,亲测,非常实用,快来学习吧。
超级小可爱
2023/02/20
1.6K0
TypeScript 之父简介:TS Anders Hejlsberg: Introducing TypeScript参考资料TypeScript入门指南(JavaScript的超集)
https://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript
一个会写诗的程序员
2018/08/17
2.2K0
TypeScript 之父简介:TS Anders Hejlsberg: Introducing TypeScript参考资料TypeScript入门指南(JavaScript的超集)
使用 excel 批量生成 sql 语句
使用 excel 批量生成 sql 语句, 是通过 excel 函数完成 在 sql 语句对应替换地方使用 "&&" 连接, 如下: ="update site_info si join site
北漂的我
2021/04/13
1.3K0
以编程方式创建Vue.js组件实例
最近参与了一个Vue.js项目,项目中需要能够以编程方式创建组件。通过编程,意思是使用JavaScript创建和插入组件,而无需在模板中编写任何内容。
前端知否
2020/03/23
7.8K3
以更好的方式使用 Vue Mixins
Mixin 组件在项目中经常被用来重用一些业务逻辑,但它们有一些不确定的细微差别,这在项目开发中越来越明显。我偶尔也会遇到这种情况,它们会给代码库的重构或新功能的开发带来困难。
前端小智@大迁世界
2022/05/09
5320
Vue 使用typescript, 优雅的调用swagger API
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,后端集成下Swagger,然后就可以提供一个在线文档地址给前端同学。
JadePeng
2020/05/26
2.3K0
Vue 使用typescript, 优雅的调用swagger API
将超过5000万行JS代码迁移到TypeScript,我们得到的10大见解
几年前,彭博工程公司决定采用 TypeScript 作为一等语言。本文分享了我们在这一旅程中学到的一些见解和教训。
深度学习与Python
2020/12/07
1.7K0
使用YAKINDU STATECHART TOOLS的TypeScript代码生成
原文链接:https://blogs.itemis.com/en/typescript-code-generation-with-yakindu-statechart-tools
用户6288414
2019/09/23
2K0
使用YAKINDU STATECHART TOOLS的TypeScript代码生成
以编程方式执行Spark SQL查询的两种实现方式
摘 要 在自定义的程序中编写Spark SQL查询程序 1.通过反射推断Schema package com.itunic.sql import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} /**   * Created by itunic.com on 2017/1/2.   * Spark SQL   * 通过反射推断Schema   * by me:   * 我本沉默是关注互联
天策
2018/06/22
2K0
TS 4.5 最新发布!新的扩展名、新语法、新的工具类型
TypeScript 4.5 已于 10.1 发布 beta 版本,本文将介绍部分其中值得关注的新特性与变更,如新增 .mts / .cts 扩展名、新的类型导入语法、新增内置工具类型等,你也可以阅读 devblog[1] 原文了解更多。
落落落洛克
2021/12/01
1.4K0
TS 4.5 最新发布!新的扩展名、新语法、新的工具类型
移动安全-api使用方式介绍
windows 环境请访问 Composer官网 下载安装包安装。unix 环境在命令行中执行以下命令安装。
腾讯云@移动安全
2018/06/07
3.5K1
移动安全-api使用方式介绍
点击加载更多

相似问题

AWS API Gateway:以编程方式生成API密钥

10

使用TFS API和SSRS以编程方式生成报告

12

以编程方式使用Import csv函数的Prestashop 1.7

10

有没有以编程方式生成XSD的API?

11

使用JS SDK以编程方式生成临时AWS API密钥

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文