mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-14 19:16:17 -06:00
keyword `abstract` is parsed at the head of class declarations and as a modifier for class member functions/variables. The following checks have been implemented: * Objects whose type is an abstract class cannot be instantiated with `new`. * all overloads of a function must match w/r/t having the abstract keyword. * a member/class decl can't use the `abstract` keyword multiple times. * a member can't be both `abstract` and `static`. * a member can't be both `abstract` and `private`. * Accessibility modifiers can't follow `abstract` * Only classes and member functions can be declared abstract. * abstract methods don't need an implementation * abstract methods can only appear in abstract classes. TODO: * forbid abstract methods from having an implementation. * make sure, barring overriding, an inherited method is abstract iff it is abstract in the parent. * If a class has an abstract members, then it must be abstract. (eg: class B does not implement inherited member 'foo()') * prevent overriding a non-abstract method with an abstract method. * update "abstractness" flag when overriding abstract method with non-abstract method. * prevent calling an abstract method via super.<abstract method name>() * make all overloads of an abstract method adjacent to eachother. * constructors can't be declared abstract -- give appropriate error. * figure out what to emit to the *.ts file -- probably nothing. * figure out what to emit to the *.d.ts file. * process abstract declarations.
TypeScript
TypeScript is a language for application-scale JavaScript. TypeScript adds optional types, classes, and modules to JavaScript. TypeScript supports tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript. Try it out at the playground, and stay up to date via our blog and twitter account.
Contribute
There are many ways to contribute to TypeScript.
- Submit bugs and help us verify fixes as they are checked in.
- Review the source code changes.
- Engage with other TypeScript users and developers on StackOverflow.
- Join the #typescript discussion on Twitter.
- Contribute bug fixes.
- Read the language specification (docx, pdf).
Documentation
Building
In order to build the TypeScript compiler, ensure that you have Git and Node.js installed.
Clone a copy of the repo:
git clone https://github.com/Microsoft/TypeScript.git
Change to the TypeScript directory:
cd TypeScript
Install Jake tools and dev dependencies:
npm install -g jake
npm install
Use one of the following to build and test:
jake local # Build the compiler into built/local
jake clean # Delete the built compiler
jake LKG # Replace the last known good with the built one.
# Bootstrapping step to be executed when the built compiler reaches a stable state.
jake tests # Build the test infrastructure using the built compiler.
jake runtests # Run tests using the built compiler and test infrastructure.
# You can override the host or specify a test for this command.
# Use host=<hostName> or tests=<testPath>.
jake runtests-browser # Runs the tests using the built run.js file. Syntax is jake runtests. Optional
parameters 'host=', 'tests=[regex], reporter=[list|spec|json|<more>]'.
jake baseline-accept # This replaces the baseline test results with the results obtained from jake runtests.
jake -T # List the above commands.
Usage
node built/local/tsc.js hello.ts
Roadmap
For details on our planned features and future direction please refer to our roadmap.
Description
TypeScript 5.9
Latest
Languages
TypeScript
97.9%
jsonc
2%
JavaScript
0.1%