typed-factorio 2.5.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +22 -7
- package/package.json +1 -1
package/README.md
CHANGED
@@ -41,15 +41,13 @@ import { ItemPrototype } from "factorio:prototype"
|
|
41
41
|
import { LuaEntity } from "factorio:runtime"
|
42
42
|
```
|
43
43
|
|
44
|
-
###
|
44
|
+
### `data.extend()`
|
45
45
|
In the settings and prototype stages, the `data` global variable is available.
|
46
46
|
|
47
|
-
For [performance reasons](https://github.com/microsoft/TypeScript/wiki/Performance#preferring-base-types-over-unions), `data.extend()` is
|
48
|
-
To get full type checking, use specific types
|
47
|
+
For [performance reasons](https://github.com/microsoft/TypeScript/wiki/Performance#preferring-base-types-over-unions), `data.extend()` is by default loosely typed.
|
48
|
+
To get full type checking, you can use specific types in one of the following ways:
|
49
49
|
```ts
|
50
|
-
//
|
51
|
-
import { AmmoCategory, ItemPrototype } from "factorio:prototype"
|
52
|
-
|
50
|
+
// Use `satisfies` on types to check types
|
53
51
|
data.extend([
|
54
52
|
{
|
55
53
|
type: "ammo-category",
|
@@ -58,10 +56,27 @@ data.extend([
|
|
58
56
|
{
|
59
57
|
type: "item",
|
60
58
|
name: "bar",
|
61
|
-
// other fields
|
59
|
+
// ...other fields
|
62
60
|
} satisfies ItemPrototype,
|
63
61
|
])
|
64
62
|
|
63
|
+
// List types as a type argument to `extend`:
|
64
|
+
data.extend<AmmoCategory | ItemPrototype>([
|
65
|
+
{
|
66
|
+
type: "ammo-category",
|
67
|
+
name: "foo"
|
68
|
+
},
|
69
|
+
{
|
70
|
+
type: "item",
|
71
|
+
name: "bar",
|
72
|
+
// ...other fields
|
73
|
+
}
|
74
|
+
])
|
75
|
+
|
76
|
+
// Use types on separate variables:
|
77
|
+
const fooCategory: AmmoCategory = {/* ... */}
|
78
|
+
const barItem: ItemPrototype = {/* ... */}
|
79
|
+
data.extend([fooCategory, barItem])
|
65
80
|
```
|
66
81
|
|
67
82
|
### Factorio lualib modules
|