Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El operador de propagación se usa para expandir una matriz o objeto iterable en elementos individuales. El operador de propagación permite manipular fácilmente matrices u objetos mediante la propagación de sus elementos o propiedades en nuevas matrices o objetos.
Spread
...
El operador de propagación se usa para copiar propiedades de un objeto a otro o para combinar matrices y objetos de forma concisa y legible.
Ejemplos
En el siguiente ejemplo se muestra el operador de propagación usado en un objeto :
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
Salida del ejemplo:
Nombre | Tipo | Valor |
---|---|---|
objB |
objeto | { forma: 'circle', color: 'white' } |
En el siguiente ejemplo se muestra el operador de propagación usado en una matriz:
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
Salida del ejemplo:
Nombre | Tipo | Value |
---|---|---|
arrB |
array | [ 1, 2, 3, 4 ] |
En el siguiente ejemplo se muestra la propagación usada varias veces en una sola operación:
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
Salida del ejemplo:
Nombre | Tipo | Value |
---|---|---|
arrC |
array | [ 1, 2, 3, 4, 2, 3 ] |
En el siguiente ejemplo se muestra la propagación usada en una operación de varias líneas:
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
En este uso, la coma no se usa entre las dos líneas. Salida del ejemplo:
Nombre | Tipo | Valor |
---|---|---|
objCombined |
objeto | { color: 'blanco', forma: 'circle' } |
En el ejemplo siguiente se muestra cómo agregar condicionalmente un elemento de matriz:
@allowed(['white', 'black'])
param color string = 'black'
var colorWhite = { color: 'white' }
var colorBlack = { color: 'black' }
output objB object = ((color == 'white')? { shape: 'circle', ...colorWhite} : { shape: 'circle', ...colorBlack})
Salida del ejemplo:
Nombre | Tipo | Valor |
---|---|---|
objB |
objeto | { forma: 'circle', color: 'black' } |
La operación de propagación se puede usar para evitar establecer una propiedad opcional. En el ejemplo siguiente, accessTier solo se establece si el parámetro nivel no es una cadena vacía.
param ___location string = resourceGroup().___location
param tier string = 'Hot'
var storageAccountName = uniqueString(resourceGroup().id)
var accessTier = tier != '' ? {accessTier: tier} : {}
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
___location: ___location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
...accessTier
}
}
El ejemplo anterior también se puede escribir como:
param ___location string = resourceGroup().___location
param tier string = 'Hot'
var storageAccountName = uniqueString(resourceGroup().id)
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
___location: ___location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
...(tier != '' ? {accessTier: tier} : {})
}
}
El operador de propagación se puede usar para invalidar las propiedades existentes.
param ___location string = resourceGroup().___location
param storageProperties {
accessTier: string?
}
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: uniqueString(resourceGroup().id)
___location: ___location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Cold'
...storageProperties
}
}
Pasos siguientes
- Si desea ejecutar los ejemplos, use la CLI de Azure o Azure PowerShell para implementar un archivo de Bicep.
- Para crear un archivo de Bicep, consulte Inicio rápido: Creación de plantillas de archivos de Bicep con Visual Studio Code.
- Para obtener información sobre cómo resolver errores de tipos de Bicep, consulte Función any para Bicep.