찾다
웹 프론트엔드JS 튜토리얼Js는 TypeScript와 연결됩니다.
Js는 TypeScript와 연결됩니다.Jun 08, 2018 am 11:26 AM
js 파일typescript성명

이번에는 Js와 TypeScript의 연관성을 알려드리겠습니다. Js와 TypeScript를 사용할 때 주의사항은 무엇인가요? 실제 사례를 살펴보겠습니다.

Preface

TypeScript는 JavaScript 유형의 상위 집합입니다. 이것은 TypeScript 문서에 소개된 문장입니다.

제가 이해한 바에 따르면 TypeScript는 JavaScript를 기반으로 강력한 형식의 언어 기능을 도입합니다. 개발자는 프로그래밍 개발을 위해 TypeScript 구문을 사용하고 최종적으로 변환 도구를 통해 TypeScript를 JavaScript로 변환합니다.

TypeScript를 사용하면 기본 JavaScript에서 개발할 때 발생하는 약한 유형의 언어의 함정을 피할 수 있습니다. (무엇을 입력해야 하나? 통화 후 무엇을 반환해야 하나? 소스코드를 살펴보자...)

흠! 매우 훌륭하고 강력한 유형의 JavaScript입니다. 매우 훌륭합니다. 하지만 NPM o(TヘTo)

걱정하지 마세요. 이제 많은 라이브러리가 조용히 TypeScript를 지원할 의도가 없더라도 이타적인 라이브러리가 있습니다. 조용히 도와주는 큰 놈들 이 라이브러리는 TypeScript를 지원합니다

이 글의 주제인 TypeScript 선언 파일은 JavaScript 라이브러리의 C 언어와 유사한 헤더 파일이라고 생각됩니다. JavaScript 라이브러리

선언 파일이란 무엇인가요?

은 C/C++ *.h 헤더 파일과 매우 유사합니다. C/C++ 프로그램에서 타사 라이브러리(.lib/.dll/.so/.a/.la)를 참조할 때) C/C++ 컴파일러는 라이브러리의 내보내기 이름과 함수 유형 서명을 자동으로 인식할 수 없으므로 인터페이스 선언을 위해 헤더 파일을 사용해야 합니다.

마찬가지로 TypeScript 선언 파일은 접미사가 .d.ts인 TypeScript 코드 파일이지만 해당 역할은 넓은 의미에서 JavaScript 모듈 내에서 내보낸 모든 인터페이스의 유형 정보를 설명하는 것입니다.

TypeScript 선언 파일의 작성 및 사양은 다음 공식 문서와 우수한 블로그 게시물을 참조하세요.

  • https://www.tslang.cn/docs/handbook/declaration-files/introduction.html

  • http ://www.jb51.net/article/138217.htm

공식 문서에 따르면 다음 두 가지 번들링 방법이 있습니다.

  • npm 패키지와 함께 번들

  • 게시됨 to npm @types organization

은 앞에서 언급한 것처럼 npm 패키지에 번들로 포함되어 있습니다. 개발자는 npm이 ts 프로젝트에 라이브러리를 설치하고 코드 파일로 가져온 후 바로 사용할 수 있습니다.

일부 라이브러리가 공식적으로 유지 관리되지 않는 경우 두 번째 방법을 사용할 수 있습니다. npm이 라이브러리를 설치한 후 npm install @types/library name을 실행하여 라이브러리 선언 파일을 설치하고 사용하세요. 원칙은 TypeScript 버전 2.0 이후 라이브러리를 가져오고 지정된 라이브러리가 구성된 포함 경로에서 발견되지 않으면 node_modules의 @types에서 라이브러리를 찾는다는 것입니다.

일반적으로 공식적인 권장 사항은 릴리스 명세서 문서를 작성하는 첫 번째 방법입니다. 첫 번째 묶음 방법을 예시로 직접 보여드리겠습니다.

Example

먼저 TypeScript 프로젝트를 초기화하면 디렉터리 구조는 다음과 같습니다.

tsconfig.json 구성은 다음과 같습니다.

{
 "compilerOptions": {
 "target": "es5",
 /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
 "module": "commonjs",
 /* Specify module code generation: 'none', commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
 "allowJs": true,
 "outDir": "./dist",
 /* Redirect output structure to the directory. */
 /* Allow javascript files to be compiled. */
 "strict": true /* Enable all strict type-checking options. */
 },
 "include": [
 "src/**/*"
 ]
}

보시다시피 모듈 a를 작성해서 번들로 묶었습니다. 선언 파일인 모듈 a, 즉 src/a/index.js에는 다음 내용이 있습니다.

const NAME = 'A';
let call = (who) => {
 console.log('Hello ' + who + '! I am ' + NAME);
}
export default {
 call
}

해당 선언 파일인 src/a/index.d.ts에는 다음 내용이 있습니다.

declare namespace a {
 function call(who: string): void;
}
export default a;

이때 항목 파일 src/index를 추가할 수 있습니다. ts는 모듈을 소개합니다:

import a from './a';
a.call('Pwcong');

명령줄에서 tsc를 실행한 후 dist 디렉터리에 js 코드가 생성될 수 있습니다:

명령 node를 실행합니다. /dist/index.js를 사용하면 해당하는 올바른 출력을 얻을 수 있습니다.

그런 다음 출시된 NPM 라이브러리 가져오기를 시뮬레이션하고 node_modules 디렉터리 아래에 b 디렉터리를 생성한 후 Node 프로젝트를 초기화합니다. 이때 디렉터리 구조는 다음과 같습니다.

node_modules/b/types/의 내용 package.json은 다음과 같습니다.

{
 "name": "b",
 "version": "1.0.0",
 "main": "./src/index.js",
 "types": "./types/index.d.ts"
}

node_modules/b/src/index.js 내용은 다음과 같습니다.

const NAME = 'B';
let call = (who) => {
 console.log('Hello ' + who + '! I am ' + NAME);
}
module.exports = {
 call
}

声明文件 node_modules/b/types/index.d.ts 内容如下:

declare namespace b {
 function call(who: string): void;
}
export = b;

这时,我们修改 src/index.ts :

import a from './a';
a.call('Pwcong');
import b = require('b');
b.call('Pwcong');

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

redux-thunk实战项目案例详解

如何使用Angular数据绑定机制

위 내용은 Js는 TypeScript와 연결됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
5个常见的JavaScript内存错误5个常见的JavaScript内存错误Aug 25, 2022 am 10:27 AM

JavaScript 不提供任何内存管理操作。相反,内存由 JavaScript VM 通过内存回收过程管理,该过程称为垃圾收集。

Vue3+TypeScript+Vite怎么使用require动态引入图片等静态资源Vue3+TypeScript+Vite怎么使用require动态引入图片等静态资源May 16, 2023 pm 08:40 PM

问题:Vue3+TypeScript+Vite的项目中如何使用require动态引入类似于图片等静态资源!描述:今天在开发项目时(项目框架为Vue3+TypeScript+Vite)需要动态引入静态资源,也就是img标签的src属性值为动态获取,按照以往的做法直接是require引入即可,如下代码:写上后代码波浪线报错,报错提示:找不到名称“require”。是否需要为节点安装类型定义?请尝试使用npmi--save-dev@types/node。ts(2580)在进行了npmi--save-d

Vue3中怎么使用TypeScriptVue3中怎么使用TypeScriptMay 13, 2023 pm 11:46 PM

如何声明字段名为枚举的类型?根据设计,type字段应该是一个枚举值,不应该由调用方随意设置。下面是Type的枚举声明,共有6个字段。enumType{primary="primary",success="success",warning="warning",warn="warn",//warningaliasdanger="danger",info="info",}TypeSc

如何使用Redis和TypeScript开发高性能计算功能如何使用Redis和TypeScript开发高性能计算功能Sep 20, 2023 am 11:21 AM

如何使用Redis和TypeScript开发高性能计算功能概述:Redis是一个开源的内存数据结构存储系统,具有高性能和可扩展性的特点。TypeScript是JavaScript的超集,提供了类型系统和更好的开发工具支持。结合Redis和TypeScript,我们可以开发出高效的计算功能来处理大数据集,并充分利用Redis的内存存储和计算能力。本文将介绍如何

使用Redis和TypeScript开发可扩展的前端应用程序使用Redis和TypeScript开发可扩展的前端应用程序Aug 01, 2023 pm 09:21 PM

标题:使用Redis和TypeScript开发可扩展的前端应用程序引言:在当今互联网时代,可扩展性是任何应用程序的关键要素之一。前端应用程序也不例外。为了满足用户日益增长的需求,我们需要使用高效可靠的技术来构建可扩展的前端应用程序。在本文中,我们将介绍如何使用Redis和TypeScript来开发可扩展的前端应用程序,并通过代码示例演示其应用。Redis简介

如何使用MySQL在TypeScript中实现数据类型转换功能如何使用MySQL在TypeScript中实现数据类型转换功能Jul 29, 2023 pm 02:17 PM

如何使用MySQL在TypeScript中实现数据类型转换功能引言:在开发Web应用程序时,数据类型转换是一个非常常见的需求。在处理数据库中存储的数据时,特别是使用MySQL作为后端数据库时,我们经常需要将查询结果中的数据按照我们所需的类型进行转换。本文将介绍如何在TypeScript中利用MySQL实现数据类型转换的功能,并提供代码示例。一、准备工作:在开

在PHP中使用TypeScript编写更好的代码在PHP中使用TypeScript编写更好的代码Jun 19, 2023 pm 06:31 PM

随着JavaScript的不断发展,前端工程师们已经逐渐意识到JavaScript本身存在的一些问题,例如缺乏类型检查和模块化,这些问题在大型项目中经常会造成混乱和错误。为了解决这些问题,TypeScript应运而生,成为前端开发中越来越受欢迎的语言。而在后端开发领域中,PHP一直是一种极其流行的脚本语言。因此,结合TypeScript来开发PHP的应用程序

Vue3中TypeScript怎么使用Vue3中TypeScript怎么使用May 18, 2023 pm 08:52 PM

如何声明字段名为枚举的类型?根据设计,type字段应该是一个枚举值,不应该由调用方随意设置。下面是Type的枚举声明,共有6个字段。enumType{primary="primary",success="success",warning="warning",warn="warn",//warningaliasdanger="danger",info="info",}TypeSc

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경