mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-23 00:52:33 +08:00

* feat(tns-platform-declarations): Generate iOS typings from iOS 12.1 SDK * Instructions for generating iOS typescript definitions * Refactor `typings-gen.sh` to use {N} CLI and generate fuller metadata for the system libraries * Automatically generate `ios.d.ts` wrapper * Add interop pointers and references as alternatives to `string` for `char*` args (implemented in https://github.com/NativeScript/ios-runtime/pull/1022) BREAKING CHANGE: Several enum values have changed because they have been wrongly generated. To migrate your app or plugin code use the new names of the following: * enum NSUnderlineStyle: - `StyleNone` -> `None` - `StyleSingle` -> `Single` - `StyleThick` -> `Thick` - `StyleDouble` -> `Double` * enum AVAudioSessionErrorCode: - `CodeNone` -> `None` - `CodeMediaServicesFailed` -> `MediaServicesFailed` - `CodeIsBusy` -> `IsBusy` - `CodeIncompatibleCategory` -> `IncompatibleCategory` - `CodeCannotInterruptOthers` -> `CannotInterruptOthers` - `CodeMissingEntitlement` -> `MissingEntitlement` - `CodeSiriIsRecording` -> `SiriIsRecording` - `CodeCannotStartPlaying` -> `CannotStartPlaying` - `CodeCannotStartRecording` -> `CannotStartRecording` - `CodeBadParam` -> `BadParam` - `CodeResourceNotAvailable` -> `ResourceNotAvailable` - `CodeUnspecified` -> `Unspecified` * fix(ui/text-base): Update NSUnderlineStyle.StyleSingle constant After the typings regeneration its and several others' names have changed to the expected `NSUnderlineStyle.Single`. * fix(tns-platform-declarations): Restore deprecated enum values In order to not introduce a breaking change in a patch version, we are keeping `Style...` and `Code...` values that have been wrongly generated till now. In the next major/minor release of the package when the typings are regenerated we can safely remove them. Revert to using the deprecated one's in `text-base.ios.ts` so that the introduction of this breaking change doesn't slip in undetected. * fix(application.ios): Directly call presetnNativeScriptApp We've been using `performSelectorWithObject` but it's declaration has been manually added. Moreover it's more convenient to directly call the method.
49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
This plugin contains type information about the native platforms as exposed by the NativeScript framework.
|
|
|
|
Offically supported entry points:
|
|
- `android.d.ts` - For android SDK and runtime types.
|
|
- `ios.d.ts` - For iOS SDK and runtime types.
|
|
|
|
Using the declarations may conflict with DOM typings,
|
|
consider using TypeScript 2.x.x and the following settings in your `tsconfig.json`:
|
|
```JSON
|
|
{
|
|
"compilerOptions": {
|
|
"module": "commonjs",
|
|
"target": "es5",
|
|
"experimentalDecorators": true,
|
|
"lib": [
|
|
"es6",
|
|
"dom"
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
Create `reference.d.ts`and add the following content:
|
|
```TypeScript
|
|
/// <reference path="./node_modules/tns-platform-declarations/ios.d.ts" />
|
|
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
|
|
```
|
|
|
|
By default the android.d.ts file contains the typings for android API level 17. If your application has a higher minimum API level you can reference that level instead:
|
|
```TypeScript
|
|
/// <reference path="./node_modules/tns-platform-declarations/android-24.d.ts" />
|
|
```
|
|
|
|
d.ts files require a lot of memory and CPU. Consider adding skipLibCheck option to tsconfig file.
|
|
|
|
## Generate android .d.ts files
|
|
* To generate android dependencies use [android-dts-generator](https://github.com/NativeScript/android-dts-generator) with the appropriate android version and android support jars
|
|
* To regenerate android-*.d.ts file use the **android-dts-generator** passing the corresponding android jar (described [here](https://github.com/NativeScript/android-dts-generator/blob/master/README.md#generate-definitons-for-android-sdk))
|
|
* More details for using the **android-dts-generator** can be found in [this article](https://docs.nativescript.org/core-concepts/android-runtime/metadata/generating-typescript-declarations).
|
|
|
|
## Generate ios .d.ts files
|
|
|
|
The `.d.ts` files for iOS are generated using iOS Runtime's metadata generator. You can use the [typings-gen.sh](./typings-gen.sh) script like this:
|
|
|
|
```BASH
|
|
./typings-gen.sh rc [<path-to-medatadata-generator-binary>]
|
|
```
|
|
Where `rc` can be an NPM tag/version of `tns-ios` that will be used for generating the typings. If the metadata generator to be used has not been released in NPM, you can optionally specify its path as a 2nd argument.
|