2024-05-06 20:40:05 +00:00
|
|
|
---
|
2024-10-29 18:27:12 +00:00
|
|
|
date: 2020-10-01
|
2024-05-06 20:40:05 +00:00
|
|
|
id: afc1ca85-af24-4ef6-bcd8-91193c4fbd32
|
|
|
|
title: lib.d.ts
|
|
|
|
---
|
|
|
|
|
|
|
|
# Introduction
|
|
|
|
|
|
|
|
This is where TypeScript "cheats" and ships with a file called
|
|
|
|
[lib.d.ts](https://github.com/microsoft/TypeScript/blob/master/lib/lib.d.ts).
|
|
|
|
This file contains ambient declarations for a whole bunch of common
|
|
|
|
[JavaScript](20200613170905-javascript) constructs present in JavaScript
|
|
|
|
runtimes and the DOM.
|
|
|
|
|
|
|
|
- This file is automatically included in the compilation context of a
|
|
|
|
TypeScript project.
|
|
|
|
- The objective of this file is to make it easy for you to start
|
|
|
|
writing type checked JavaScript code.
|
|
|
|
|
|
|
|
# Modifying Native Types
|
|
|
|
|
|
|
|
If you want to be a clever clogs you can add stuff to the interfaces in
|
|
|
|
lib.d.ts by creating a global module (ie: `global.d.ts`)
|
|
|
|
|
|
|
|
# Example
|
|
|
|
|
|
|
|
## lib.d.ts magic
|
|
|
|
|
|
|
|
The following code is only possible because of lib.d.ts. If it's used
|
|
|
|
with the `nolib` option, TypeScript doesn't know that all JavaScript
|
|
|
|
objects have a `toString` function.
|
|
|
|
|
|
|
|
var foo = 123;
|
|
|
|
var bar = foo.toString();
|
|
|
|
|
|
|
|
## Example of what's in the lib.d.ts
|
|
|
|
|
|
|
|
``` typescript
|
|
|
|
declare var window: Window;
|
|
|
|
|
|
|
|
interface Window extends EventTarget, WindowTimers, WindowSessionStorage, WindowLocalStorage, WindowConsole, GlobalEventHandlers, IDBEnvironment, WindowBase64 {
|
|
|
|
animationStartTime: number;
|
|
|
|
applicationCache: ApplicationCache;
|
|
|
|
clientInformation: Navigator;
|
|
|
|
closed: boolean;
|
|
|
|
crypto: Crypto;
|
|
|
|
// so on and so forth...
|
|
|
|
}
|
|
|
|
```
|